package com.example.education.dao;

import com.example.education.model.Course;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

@Mapper
@Component
public interface CourseMapper {
    /**
     * 资源上传
     * @param course 资源信息
     * @return 是否成功
     */
    Integer insertCourse(Course course);

    /**
     * 下架资源
     * @param courseId
     * @return 是否成功
     */
    Integer deleteCourse(@Param("courseId")Integer courseId);

    /**
     * 修改资源信息
     * @param course
     * @return
     */
    Integer updateCourse(Course course);

    /**
     * 根据id查找资源
     * @param id
     * @return
     */
    Course getCourseById(@Param("courseId")Integer id);

    /**
     * 根据id查找资源
     * @param ids
     * @return
     */
    List<Course> getCourseByIds(@Param("list")List<Integer> ids);

    /**
     * 根据类型查找课程
     * @param cateId 课程编号
     * @param start
     * @param size 页面大小
     * @return
     */
    List<Course> getCourseByCateId(@Param("cateId")Integer cateId,
                                   @Param("start") Integer start,
                                   @Param("size") Integer size);

    /**
     * 根据关键字查找课程
     * @param word 关键字
     * @param start
     * @param size 页面大小
     * @return
     */
    List<Course> getCourseByWord(@Param("word")String word,
                                   @Param("start") Integer start,
                                   @Param("size") Integer size);

    /**
     * 获取所有
     * @return
     */
    List<Course> selectAll(@Param("start") Integer start,@Param("limit") Integer limit);

    /**
     * 获取所有的个数
     * @return
     */
    Integer getAllCount();
}